Embodiments of the invention relate generally to software testing, and more particularly, to automatic maintenance of subroutines applicable to a software application under test.
Software testers often create test scripts to test different functions of an application under test. A test script generally includes a step-by-step process to invoke specific functions of the application and verify that the functions correctly perform the intended tasks. The script for testing a particular function of the application may include the scripts of common sub-processes used for other functions. These sub-processes are often referred to as subroutines or sub-tests. For example, test scripts for a Web application being tested may include a common sequence of steps for logging on to a Web site that include entering an ID and a password, and clicking on a “Log in” button. Software testers may label such subroutines with keywords to uniquely identify them and facilitate the maintenance of the test scripts. An application under test may, however, continuously change during its development. As a result, a step-by-step process that corresponds to a subroutine may also need to be modified to remain useful.
Creating and maintaining the test subroutines may be a manual process in a testing system. For example, the testers may manually create new keywords for new subroutines or modified subroutines. Such a manual process is generally not practical for testing a major software product in which a large number of subroutines may be generated and continuously updated.